home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-04
/
ddj1291.zip
/
STAT.ZIP
/
EXAMPLE.ZIP
/
PATEST.C
< prev
Wrap
C/C++ Source or Header
|
1990-05-06
|
6KB
|
324 lines
/*
** File: patest.c
**
** Description: This is a collection of simple routines to test the
** accuracy of the statistical performance analysis programs
** for the PC and for the ES 1800 emulator.
**
*/
/* Default delay timing parameters */
#define DELAY_ONE 1
#define DELAY_TWO 2
#define DELAY_THREE 3
#define DELAY_FOUR 4
#define DELAY_FIVE 5
#define DELAY_SIX 6
#define DELAY_SEVEN 7
#define DELAY_EIGHT 8
#define DELAY_NINE 9
#define DELAY_TEN 10
#define DELAY_ELEVEN 11
#define DELAY_TWELVE 12
#define DELAY_THIRTEEN 13
#define DELAY_FOURTEEN 14
#define DELAY_FIFTEEN 15
#define DELAY_SCALE 10 /* Effectively muliplies values by 1000 */
#define DELAY_LOOPS 5 /* Default number of times thru main loop */
/* Loop delay parameters. These are done as globals to allow easy access to
** the timing parameters via the ES 1800 emulator. This allows different
** timing configurations to be tested without having to recompile and link
** this code. Kludgie, but it encourages easy experimentation. */
long final_sumL = 0;
int time_oneN = DELAY_ONE;
int time_twoN = DELAY_TWO;
int time_threeN = DELAY_THREE;
int time_fourN = DELAY_FOUR;
int time_fiveN = DELAY_FIVE;
int time_sixN = DELAY_SIX;
int time_sevenN = DELAY_SEVEN;
int time_eightN = DELAY_EIGHT;
int time_nineN = DELAY_NINE;
int time_tenN = DELAY_TEN;
int time_elevenN = DELAY_ELEVEN;
int time_twelveN = DELAY_TWELVE;
int time_thirteenN = DELAY_THIRTEEN;
int time_fourteenN = DELAY_FOURTEEN;
int time_fifteenN = DELAY_FIFTEEN;
int scaleN = DELAY_SCALE;
int looptoloopN = DELAY_LOOPS;
/*
** Function: long delay_xxxx(int delayN)
**
** Description: These are simple functions designed to allow varied delays.
** The code in each delay function is the identical to the code
** in all of the other delay functions. This allows accurate
** comparision of the relative execution time of each function.
**
** Fifteen of these functions should be a reasonable number to
** represent a simple "real" program.
*/
long
delay_one(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_two(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_three(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_four(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_five(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_six(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_seven(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_eight(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_nine(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_ten(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_eleven(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_twelve(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_thirteen(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_fourteen(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
long
delay_fifteen(delayN)
int delayN;
{
int i;
long sumL;
sumL = 0L;
delayN <<= scaleN;
for (i = 0; i < delayN; i++)
sumL += (long) i;
return(sumL);
}
/*
** Function: void main()
**
** Description: This is a simple routine to run the various delay routines.
** The delay time variables are all globals to allow
** experimentation with the timing parameters using the
** ES 1800 emulator.
*/
void
main()
{
int i;
final_sumL = 0L;
for (i = 0; i < looptoloopN; i++)
{
final_sumL += delay_one(time_oneN);
final_sumL += delay_two(time_twoN);
final_sumL += delay_three(time_threeN);
final_sumL += delay_four(time_fourN);
final_sumL += delay_five(time_fiveN);
final_sumL += delay_six(time_sixN);
final_sumL += delay_seven(time_sevenN);
final_sumL += delay_eight(time_eightN);
final_sumL += delay_nine(time_nineN);
final_sumL += delay_ten(time_tenN);
final_sumL += delay_eleven(time_elevenN);
final_sumL += delay_twelve(time_twelveN);
final_sumL += delay_thirteen(time_thirteenN);
final_sumL += delay_fourteen(time_fourteenN);
final_sumL += delay_fifteen(time_fifteenN);
}
}